-- *****************************************************************
-- CISCO-ENTITY-EXT-MIB.my
--
-- Cisco Extension to ENTITY-MIB(RFC2737)
--
--  April 2001, A S Kiran Koushik
--  May  2004, Arul Mozhi 
--
-- Copyright (c) 2001, 2002, 2003 & 2004  by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
--

CISCO-ENTITY-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        Unsigned32              FROM SNMPv2-SMI
        MODULE-COMPLIANCE, 
        OBJECT-GROUP            FROM SNMPv2-CONF
        TEXTUAL-CONVENTION      FROM SNMPv2-TC
        SnmpAdminString         FROM SNMP-FRAMEWORK-MIB
        entPhysicalIndex,
        entPhysicalEntry        FROM ENTITY-MIB
        ciscoMgmt               FROM CISCO-SMI;


ciscoEntityExtMIB MODULE-IDENTITY
        LAST-UPDATED  "200407060000Z"
        ORGANIZATION  "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W. Tasman Drive
                        San Jose, CA 95134
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-snmp@cisco.com"
        DESCRIPTION
                "This MIB is an extension of the ENTITY-MIB
                 specified in RFC2737.

                 This MIB module contains  Cisco-defined  extensions 
                 to the  entityPhysicalTable to represent information
                 related to entities of class module(entPhysicalClass
                 = 'module') which have a Processor.

                 A processor module is defined as a physical entity
                 that has a CPU, RAM and NVRAM  so that
                 it can independently
                    - load a bootable image
                    - save configuration.
                 This module is the entry point for external
                 applications like SNMP Manager, CLI, FTP etc.

                 Line card is an interface card  with at least a 
                 Processor and RAM. This might be referred to as 
                 Service Module in some cisco products.
                
                 A configuration register is  a 16 bit 
                 software register.
                 The configuration register is mainly used to 
                 check for instructions on where to find the Cisco 
                 Operating System software.
                 Some other functions of configuration register are:
                  - To select a boot source and default boot filename.
                  - To enable or disable the Break function.
                  - To control broadcast addresses.
                  - To set the console terminal baud rate.
                  - To load operating software from Flash memory.
                  - To allow us to manually boot the system using the 
                    boot command at the bootstrap program prompt.
                 
                 Booting is the process of initializing the
                 hardware and starting the Operating System."
    REVISION     "200407060000Z"
    DESCRIPTION
            "Added a new table object 'ceExtEntPhysicalTable' ." 
    REVISION     "200403030000Z"
    DESCRIPTION
            "Importing Unsigned32 from SNMPv2-SMI, instead of CISCO-TC. " 
    REVISION     "200401260000Z"
    DESCRIPTION
            "Added new enum to ceExtEntityLEDType. " 
    REVISION     "200308240000Z"
        DESCRIPTION
            "Added ceExtEntityLEDTable.  Added ceExtKickstartImageList to
             ceExtConfigRegTable.
         Added new group ciscoEntityExtLEDGroup.
         Added group ceExtSysBootImageListGroupRev1." 
        REVISION     "200105170000Z"
        DESCRIPTION
                "Corrected the description for the TC 
                 ConfigRegisterValue."
        REVISION     "200104050000Z"
        DESCRIPTION
                "Initial version of this MIB module."
::= { ciscoMgmt 195 }


ciscoEntityExtMIBObjects  
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIB 1 }

--
-- textual conventions
--

ConfigRegisterValue ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "2x"
        STATUS       current
        DESCRIPTION
                "An Integer containing the value of config register.
                 
                 The definition of individual bits from right to left 
                 when set are as follows:
                
                 00 to  
                 03             Boot Fields(Refer below for
                                explanation).

                 04 to 
                 05             Not Used.
                
                 06             Causes system software to ignore the 
                                contents of NVRAM.

                 07             Enable the original equipment 
                                manufacturer (OEM) bit.

                 08             The Break function is disabled.

                 09             Not used.

                 10             Broadcast based on 0.0.0.0 IP address.

                 11 to 
                 12             Defines the console baud rate as below:
                                Bits 11 & 12 unset: 9600 baud(default),
                                Bit 11 set & 12 unset: 4800 baud,
                                Bit 11 unset & 12 set: 1200 baud,
                                Bit 11 set & 12 set: 2400 baud

                 13             Boots default Flash software if 
                                network boot fails.

                 14             IP broadcasts do not have network 
                                numbers.

                 15             Enables diagnostic messages and ignores 
                                the contents of NVRAM.
      

                Meanings for different values of Boot Fields
                (Bits 00 to 03) are explained below:

                Value(in hex)   Description
                ------------    -----------
                 00             On powerup or reload, the system
                                remains at the ROM monitor prompt 
                                (rommon>), awaiting a user command 
                                to boot the system manually by means 
                                of the rommon boot command.

                 01             On powerup or reload, the system loads
                                the system image found in onboard 
                                Flash memory.
        
                 02 to          On powerup or reload, the system loads
                 0F             the system image specified by 
                                ceExtSysBootImageList.
                                It tries to boot the
                                image in the order in which 
                                the image names are entered in 
                                ceExtSysBootImageList. If 
                                it cannot boot any image in the
                                ceExtSysBootImageList, it 
                                stays in ROM monitor mode."


       SYNTAX       OCTET STRING (SIZE (2))


BootImageList ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "This contains a list of  boot images, 
             each separated by the ';' (semi-colon) character.  
             The following provides a syntax for parsing a single
             boot image list item.

             <device>:[filename] | <URL>

             <device> can be (but not limited to):
                flash, bootflash, slot0, rom, C
             The transfer protocol used in the <URL>
             can be (but not limited to):
                 tftp, ftp, rcp, mop.

             The following is en example containing two boot image
             names:  
                disk0:c7100-ik2s-mz;tftp://dirt/c7100-ik2s-mz
                                
             If the filename is not  specified, then the
             first file on the <device> will be used.

             If the last two characters in the returned value
             are ';+' this indicates that additional boot image
             items are configured on the device but can not
             be returned because the maximum string size limitation
             would be exceeded.

             For example:
                disk0:image1;disk0:image2;+
             "
        
    SYNTAX      OCTET STRING (SIZE (0..255))



--
-- ceExtPhysicalProcessorTable
--

ceExtPhysicalProcessorTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CeExtPhysicalProcessorEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "The ceExtPhysicalProcessorTable extends
             the ENTITY-MIB entPhysicalTable for modules
             (Non FRUs(Field Replacable Units) or FRUs)."
    REFERENCE
            "RFC2737: Section 2.12.1"
    ::= { ciscoEntityExtMIBObjects 1 }

ceExtPhysicalProcessorEntry OBJECT-TYPE
    SYNTAX  CeExtPhysicalProcessorEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A ceExtPhysicalProcessorTable entry extends 
             a corresponding entPhysicalTable entry of class
             module(entPhysicalClass = 'module').
        
             A processor module or line card which 
             has a processor will have an entry in
             this table.

             A processor module or line card having
             multiple processors and is a SMP(Symmetric
             multi processor) system will have only 
             one entry corresponding to all the processors 
             since the resources defined below are shared.

             A processor module or line card having
             multiple processors and is not an SMP system
             would register the processors as separate entities.

             Entries are created by the agent at the system power-up
             or module insertion.
        
             Entries are removed when the module is reset or removed."
    INDEX   { entPhysicalIndex }
    ::= { ceExtPhysicalProcessorTable 1 }

CeExtPhysicalProcessorEntry  ::= SEQUENCE {
    ceExtProcessorRam                   Unsigned32,
    ceExtNVRAMSize                      Unsigned32,
    ceExtNVRAMUsed                      Unsigned32
}

ceExtProcessorRam OBJECT-TYPE
        SYNTAX  Unsigned32
        UNITS   "bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "Total number of bytes of RAM available on the
                 Processor."
        ::= { ceExtPhysicalProcessorEntry 1 }

ceExtNVRAMSize OBJECT-TYPE
        SYNTAX  Unsigned32
        UNITS   "bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "Total number of bytes of NVRAM in the entity.
                        
                 A value of 0 for this object means the entity
                 does not support NVRAM or NVRAM information 
                 is not available."
        ::= { ceExtPhysicalProcessorEntry 2 }

ceExtNVRAMUsed OBJECT-TYPE
        SYNTAX  Unsigned32
        UNITS   "bytes"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "Number of bytes of NVRAM in use. This object
                 is irrelevant if ceExtNVRAMSize is 0."
        ::= { ceExtPhysicalProcessorEntry 3 }


ceExtConfigRegTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CeExtConfigRegEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "The ceExtConfigRegTable extends
             the ENTITY-MIB entPhysicalTable."
    REFERENCE
            "RFC2737: Section 2.12.1"           
    ::= { ciscoEntityExtMIBObjects 2 }

ceExtConfigRegEntry OBJECT-TYPE
    SYNTAX  CeExtConfigRegEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A ceExtConfigRegTable entry extends 
             a corresponding entPhysicalTable entry of class
             module which has a configuration register.

             Entries are created by the agent at the system power-up
             or module insertion.
        
             Entries are removed when the module is reset or 
             removed."

    INDEX   { entPhysicalIndex }
    ::= { ceExtConfigRegTable 1 }

CeExtConfigRegEntry  ::= SEQUENCE {
    ceExtConfigRegister                 ConfigRegisterValue,          
    ceExtConfigRegNext                  ConfigRegisterValue,
    ceExtSysBootImageList               BootImageList,
    ceExtKickstartImageList     BootImageList
}

ceExtConfigRegister OBJECT-TYPE
        SYNTAX  ConfigRegisterValue
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The value of configuration register with which 
                 the processor module booted."
        ::= { ceExtConfigRegEntry 1 }

ceExtConfigRegNext OBJECT-TYPE
        SYNTAX  ConfigRegisterValue
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                "The value of configuration register in the 
                 processor module at next reboot. Just after 
                 the reboot this has the same value as 
                 ceExtConfigRegister."
        ::= { ceExtConfigRegEntry 2 }

ceExtSysBootImageList OBJECT-TYPE
        SYNTAX        BootImageList
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "The list of system boot images which
                 can be used for booting."
        DEFVAL { "" }
        ::= { ceExtConfigRegEntry 3 }
        
ceExtKickstartImageList OBJECT-TYPE
        SYNTAX        BootImageList
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "The list of system kickstart images which
                 can be used for booting."
        DEFVAL { "" }
        ::= { ceExtConfigRegEntry 4 }

--
-- ceExtEntityLEDTable
--
ceExtEntityLEDTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF CeExtEntityLEDEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
         "A table containing information of LED on an entity. "
    ::= { ciscoEntityExtMIBObjects 3 }

ceExtEntityLEDEntry OBJECT-TYPE
    SYNTAX     CeExtEntityLEDEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the ceExtEntityLEDTable, 
        containing information about an LED on an entity, identified by 
        entPhysicalIndex. "
    INDEX { entPhysicalIndex, ceExtEntityLEDType } 
    ::= { ceExtEntityLEDTable 1 }

CeExtEntityLEDEntry ::= SEQUENCE {
        ceExtEntityLEDType     INTEGER,
        ceExtEntityLEDColor    INTEGER
}

ceExtEntityLEDType OBJECT-TYPE
    SYNTAX      INTEGER {
                          status(1),
                          system(2),
                          active(3),
                          power(4),
                          battery(5)
                        }                            
    MAX-ACCESS  not-accessible 
    STATUS      current
    DESCRIPTION
        "The type of LED on this entity. 
        'status' - indicates the entity status.
        'system' - indicates the overall system status. 
        'active' - the redundancy status of a module, for e.g.
                   supervisor module. 
        'power'  - indicates sufficient power availability for all 
                   modules.
        'battery'- indicates the battery status. "
    REFERENCE
        "Cisco MDS 9500 Series Hardware Installation Guide,
        Product Overview." 
    ::= { ceExtEntityLEDEntry 1 }

ceExtEntityLEDColor OBJECT-TYPE
    SYNTAX      INTEGER {
                          off(1),
                          green(2),
                          amber(3),
                          red(4)
                        }
    MAX-ACCESS  read-only 
    STATUS      current             
    DESCRIPTION
        "The color of the LED."
    REFERENCE
        "Cisco MDS 9500 Series Multilayer Switches, Product
        Overview."        
    ::= { ceExtEntityLEDEntry 2 }


--
-- ceExtEntityPhysicalTable
--

ceExtEntPhysicalTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF CeExtEntPhysicalEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains additional information about 
        a particular physical entity.
        This table augments the 'entPhysicalTable'  of
        the ENTITY-MIB." 
    REFERENCE
        "RFC2737: Section 2.12.1"
    ::= { ciscoEntityExtMIBObjects 4 }

ceExtEntPhysicalEntry OBJECT-TYPE
    SYNTAX     CeExtEntPhysicalEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the 'ceExtEntPhysicalTable',
        containing additional information about a physical entity, 
        identified by 'entPhysicalIndex'."
    AUGMENTS { entPhysicalEntry }
    ::= { ceExtEntPhysicalTable 1 }

CeExtEntPhysicalEntry ::= SEQUENCE {
        ceEntPhysicalSecondSerialNum SnmpAdminString 
        }

ceEntPhysicalSecondSerialNum  OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current DESCRIPTION 
        "This object represents the vendor-specific second 
        serial number string for the physical entity. 
        The first serial number string of the physical
        entity is represented in the value of corresponding 
        instance of the 'entPhysicalSerialNum' object.

        On the first instantiation of an physical entity, the value
        of this object is the correct vendor-assigned second 
        serial number, if this information is available to the agent. 

        If the second serial number is unknown or non-existent, then 
        the value of this object will be a zero-length string instead.

        Note that implementations which can correctly identify the
        second serial numbers of all installed physical entities do 
        not need to provide write access to this object. 
        Agents which cannot provide non-volatile storage for the 
        second serial number strings are not required to implement 
        write access for this object.

        Not every physical component will have a serial number, or
        even need one.  Physical entities for which the associated
        value of the entPhysicalIsFRU object is equal to 'false(2)'
        (e.g., the repeater ports within a repeater module), do not
        need their own unique serial number. An agent does not have
        to provide write access for such entities, and may return a
        zero-length string.

        If write access is implemented for an instance of
        'ceEntPhysicalSecondSerialNum', and a value is written into 
        the instance, the agent must retain the supplied value in the
        'ceEntPhysicalSecondSerialNum' instance associated with the 
        same physical entity for as long as that entity remains
        instantiated. This includes instantiations across all re-
        initializations/reboots of the network management system,
        including those which result in a change of the physical
        entity's entPhysicalIndex value." 
    DEFVAL {""}
    ::= { ceExtEntPhysicalEntry 1 }


--Notifications
ceExtMIBNotificationPrefix 
        OBJECT IDENTIFIER ::= {ciscoEntityExtMIB 2 }
ciscoEntityExtMIBNotifications 
        OBJECT IDENTIFIER ::= {ceExtMIBNotificationPrefix 0 }

--
-- conformance information
--
ciscoEntityExtMIBConformance
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIB 3 }

ciscoEntityExtMIBCompliances
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIBConformance 1 }

ciscoEntityExtMIBGroups
        OBJECT IDENTIFIER ::= { ciscoEntityExtMIBConformance 2 }

--
-- compliance statements
--

ciscoEntityExtMIBCompliance MODULE-COMPLIANCE
    STATUS  deprecated -- superseded by 
                       -- ciscoEntityExtMIBComplianceRev1
    DESCRIPTION
            "Compliance for SNMP Entities which support modules 
             with CPU, NVRAM and configuration register."
    MODULE  -- this module
    MANDATORY-GROUPS {
                ceExtPhysicalProcessorGroup
    }
    GROUP ciscoEntityExtConfigRegGroup
    DESCRIPTION
            "The ciscoEntityExtConfigRegGroup is an optional group
             containing objects providing information about
             configuration register."
    GROUP ceExtSysBootImageListGroup
    DESCRIPTION
            "This group is an optional group containing an object
             which provides information about the system boot images."

    ::= { ciscoEntityExtMIBCompliances 1 }

ciscoEntityExtMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS deprecated 
    DESCRIPTION
            "Compliance for SNMP Entities which support modules 
             with CPU, NVRAM and configuration register."
    MODULE  -- this module
    MANDATORY-GROUPS {
                ceExtPhysicalProcessorGroup
    }
    GROUP ciscoEntityExtConfigRegGroup
    DESCRIPTION
            "The ciscoEntityExtConfigRegGroup is an optional group
             containing objects providing information about
             configuration register."
    GROUP ceExtSysBootImageListGroup
    DESCRIPTION
            "This group is an optional group containing an object
             which provides information about the system boot images."
    GROUP ciscoEntityExtLEDGroup
    DESCRIPTION
            "This group is an optional group containing an object
             which provides LED information."
        GROUP ceExtSysBootImageListGroupRev1
    DESCRIPTION
            "This group is an optional group containing an object
             which provides information about the system boot images."   
    ::= { ciscoEntityExtMIBCompliances 2 }


ciscoEntityExtMIBComplianceRev2 MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "Compliance for SNMP Entities which support modules 
             with CPU, NVRAM and configuration register."
    MODULE  -- this module
    MANDATORY-GROUPS {
                ceExtPhysicalProcessorGroup
    }
    GROUP ciscoEntityExtConfigRegGroup
    DESCRIPTION
            "The ciscoEntityExtConfigRegGroup is an optional group
             containing objects providing information about
             configuration register."
    GROUP ceExtSysBootImageListGroup
    DESCRIPTION
            "This group is an optional group containing an object
             which provides information about the system boot images."
    GROUP ciscoEntityExtLEDGroup
    DESCRIPTION
            "This group is an optional group containing an object
             which provides LED information."
    GROUP ceExtSysBootImageListGroupRev1
    DESCRIPTION
            "This group is an optional group containing an object
             which provides information about the system boot images."   
    
    GROUP ciscoExtEntityPhysicalGroup 
    DESCRIPTION
            "This group is an optional group containing an object
             which provides additional information about the 
             physical entity."   
    ::= { ciscoEntityExtMIBCompliances 3 }

--
-- units of conformance
--

ceExtPhysicalProcessorGroup OBJECT-GROUP
    OBJECTS {
        ceExtProcessorRam,
        ceExtNVRAMSize,
        ceExtNVRAMUsed
    }
    STATUS  current
    DESCRIPTION
            "The collection of objects which give information about
             the Processor RAM and NVRAM."
    ::= { ciscoEntityExtMIBGroups 1 }

ciscoEntityExtConfigRegGroup OBJECT-GROUP
    OBJECTS {
        ceExtConfigRegister,
        ceExtConfigRegNext
    }
    STATUS  current
    DESCRIPTION
            "The collection of objects which give information about
             configuration register.
                
             Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 2 }

ceExtSysBootImageListGroup OBJECT-GROUP
    OBJECTS {
        ceExtSysBootImageList
    }
    STATUS  current
    DESCRIPTION
            "A group containing an object providing information 
             about the system boot images.

             Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 3 }

ciscoEntityExtLEDGroup OBJECT-GROUP
        OBJECTS { ceExtEntityLEDColor }
        STATUS   current   
        DESCRIPTION
                "A collection of objects for giving led information."
        ::= { ciscoEntityExtMIBGroups 4}
        
ceExtSysBootImageListGroupRev1 OBJECT-GROUP
    OBJECTS {
        ceExtKickstartImageList
    }
    STATUS  current
    DESCRIPTION
            "A group containing an object providing information 
             about the system boot images.

             Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 5 }

   
ciscoExtEntityPhysicalGroup OBJECT-GROUP
    OBJECTS {
        ceEntPhysicalSecondSerialNum
    }
    STATUS  current
    DESCRIPTION
            "The collection of objects for providing additional 
            information about the physical entity.

            Implementation of this group is optional."
    ::= { ciscoEntityExtMIBGroups 6 }
END